<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <meta http-equiv="X-UA-Compatible" content="ie=edge" />
  <title>天知道</title>
  <link rel="stylesheet" href="css/reset.css" />
  <link rel="stylesheet" href="css/index.css" />
  <style>
    .fade-enter-active,
    .fade-leave-active {
      transition: opacity 0.5s;
    }

    .fade-enter,
    .fade-leave-to

    /* .fade-leave-active below version 2.1.8 */
      {
      opacity: 0;
    }
  </style>
</head>

<body>
  <div class="wrap" id="app">
    <div class="search_form">
      <div class="logo"><img src="img/logo.png" alt="logo" /></div>
      <div class="form_group">
        <!-- 搜索框 -->
        <input type="text" class="input_txt" placeholder="请输入查询的天气" v-model="city" @keyup.enter.trim="getWeather" />
        <!-- 搜索按钮 -->
        <button class="input_sub" @click='getWeather'>搜 索</button>
      </div>
      <!-- 热门城市 -->
      <div class="hotkey">
        <!-- <a href="javascript:;">北京</a><a href="javascript:;">上海</a><a href="javascript:;">广州</a><a
          href="javascript:;">深圳</a> -->
        <a href="javascript:;" v-for="(item,index) in cityList" @click='hot(index)'>{{item}}</a>
      </div>
    </div>
    <!-- 搜索结果 -->
    <ul class="weather_list">
      <!-- 列表项 -->
      <li v-for="(item,index) in info">
        <div class="info_type"><span class="iconfont">{{item.type}}</span></div>
        <div class="info_temp">
          <b>{{item.low}}</b>
          ~
          <b>{{item.high}}</b>
        </div>
        <div class="info_date"><span>{{item.date}}</span></div>
      </li>
    </ul>
    <!-- 遮罩层 -->
    <transition name="fade">
      <div class="cover" v-if="isShow">
        <img src="./img/loading.gif" alt="" />
      </div>
    </transition>

  </div>
  <!-- 开发环境版本，包含了有帮助的命令行警告 -->
  <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
  <!-- 官网提供的 axios 在线地址 -->
  <script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
  <script>
    const app = new Vue({
      el: '#app',
      data: {
        city: '深圳',
        info: [],
        cityList: ['北京', '上海', '长沙', '天津'],
        isShow: false
      },
      methods: {
        // 根据用户输入内容发起请求,双向绑定文本框
        getWeather() {
          this.info = [];
          this.isShow = true;
          axios({
            url: 'http://wthrcdn.etouch.cn/weather_mini',
            method: 'get',
            params: {
              city: this.city
            }
          }).then(res => {
            // 根据结果渲染页面
            setTimeout(() => {
              this.info = res.data.data.forecast;
              this.isShow = false;
            }, 300);
          }).catch(err => {
            console.log(err);
          })
        },
        hot(index) {
          this.city = this.cityList[index];
          this.getWeather();
        }
      },
      created() {
        this.getWeather();
      }
    })
  </script>
</body>

</html>